﻿Imports Publics
Imports System.Windows.Forms
Imports System.Data.Linq


Public Class FrmCapNhatVatTu

    Private _VatTuEdit As VT_DM_VatTu
    Public Property VatTuEdit() As VT_DM_VatTu
        Get
            Return _VatTuEdit
        End Get
        Set(ByVal value As VT_DM_VatTu)
            _VatTuEdit = value
        End Set
    End Property

    Private _IDVatTu As String
    Public Property IDVatTu() As String
        Get
            Return _IDVatTu
        End Get
        Set(ByVal value As String)
            _IDVatTu = value
        End Set
    End Property

    Private _Action As String
    Public Property Action() As String
        Get
            Return _Action
        End Get
        Set(ByVal value As String)
            _Action = value
        End Set
    End Property

    Private Sub btnThoat_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnThoat.ItemClick
        Me.Close()
    End Sub

    Private Sub btnGhiVaDong_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnGhiVaDong.ItemClick
        Dim strLoi As String = CheckSave()
        If strLoi <> "" Then
            MsgInfo(strLoi)
            Return
        End If

        If SaveData() Then
            Me.Close()
        End If

    End Sub

    Private Function SaveData() As Boolean
        Try
            Select Case Action
                Case vAddAction, vCopyAction
                    Dim objNew As New VT_DM_VatTu
                    objNew.ID = CreateID()
                    IDVatTu = objNew.ID '// Lưu lại
                    objNew.IDNhomVatTu = txtMaNhomVatTu.Tag.ToString
                    objNew.MaVatTu = txtMaVatTu.Text.Trim
                    objNew.TenVatTu = txtTenVatTu.Text.Trim
                    objNew.DVT = txtDonViTinh.Text.Trim
                    objNew.GiaBan = CDec("0" & txtGiaBan.EditValue)
                    objNew.ThueSuat = CDec("0" & txtThueSuat.EditValue)
                    objNew.GhiChu = txtGhiChu.Text

                    objNew.InUsed = True
                    objNew.EditedOn = dbTV.GetDateTimeServer
                    dbTV.VT_DM_VatTus.InsertOnSubmit(objNew)
                    iSubmitChange()
                Case vEditAction
                    Dim objEdit = (From ds In dbTV.VT_DM_VatTus Where ds.InUsed AndAlso ds.ID = VatTuEdit.ID Select ds).FirstOrDefault
                    If objEdit IsNot Nothing Then
                        IDVatTu = objEdit.ID
                        objEdit.MaVatTu = txtMaVatTu.Text.Trim
                        objEdit.TenVatTu = txtTenVatTu.Text.Trim
                        objEdit.DVT = txtDonViTinh.Text.Trim
                        objEdit.GiaBan = CDec("0" & txtGiaBan.EditValue)
                        objEdit.ThueSuat = CDec("0" & txtThueSuat.EditValue)
                        objEdit.GhiChu = txtGhiChu.Text
                        objEdit.EditedOn = dbTV.GetDateTimeServer
                        iSubmitChange()
                    End If
            End Select

            If Action = vAddAction Or Action = vCopyAction Then

                SaveLog("Cập nhật danh mục vật tư", "Thêm mới", String.Format("Mã: {0}; Tên: {1}", txtMaVatTu.Text.Trim, txtTenVatTu.Text.Trim), IDVatTu, "FrmCapNhatVatTu")
            ElseIf Action = vEditAction Then

                SaveLog("Cập nhật danh mục vật tư", "Cập nhật", String.Format("Mã cũ: {0}; Mã mới {1}; Tên cũ {2}; Tên mới {3}", VatTuEdit.MaVatTu, txtMaVatTu.Text.Trim, VatTuEdit.TenVatTu, txtTenVatTu.Text.Trim), IDVatTu, "FrmCapNhatVatTu")
            End If
        Catch ex As Exception
            MsgInfo(ex.Message)
            Return False
        End Try

        Return True

    End Function

    Private Sub FrmCapNhatVatTu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btnGhiVaDong.Caption = BtnSaveAndCloseCaption
        btnGhiVaThem.Caption = BtnSaveAndAddCaption
        btnThoat.Caption = BtnExitCaption
        lbPhimTat.Text = GetLabelPhimTatCoBanCapNhatDanhMuc()

        Select Case Action
            Case vEditAction, vCopyAction
                If VatTuEdit IsNot Nothing Then
                    txtMaVatTu.Text = VatTuEdit.MaVatTu
                    txtTenVatTu.Text = VatTuEdit.TenVatTu
                    txtDonViTinh.Text = VatTuEdit.DVT
                    txtGhiChu.Text = VatTuEdit.GhiChu
                    txtGiaBan.EditValue = VatTuEdit.GiaBan
                    txtThueSuat.EditValue = VatTuEdit.ThueSuat
                    Dim objNhomVatTu = (From ds In dbTV.VT_DM_NhomVatTus Where ds.InUsed AndAlso ds.ID = VatTuEdit.IDNhomVatTu Select ds).FirstOrDefault
                    If objNhomVatTu IsNot Nothing Then
                        txtMaNhomVatTu.Text = objNhomVatTu.MaNhom
                        txtTenNhomVatTu.Text = objNhomVatTu.TenNhom
                        txtMaNhomVatTu.Tag = objNhomVatTu.ID
                    End If
                End If
        End Select
    End Sub

    Private Function CheckSave() As String
        If String.IsNullOrEmpty(txtMaVatTu.Text.Trim) Then
            txtMaVatTu.Focus()
            Return "Bạn chưa nhập mã vật tư"
        End If
        If String.IsNullOrEmpty(txtTenVatTu.Text.Trim) Then
            txtTenVatTu.Focus()
            Return "Bạn chưa nhập tên vật tư"
        End If
        'Trung ma
        Select Case Action
            Case vAddAction, vCopyAction
                Dim objTrungMa = (From ds In dbTV.VT_DM_VatTus Where ds.InUsed AndAlso ds.MaVatTu = txtMaVatTu.Text.Trim).FirstOrDefault
                If objTrungMa IsNot Nothing Then
                    txtMaVatTu.Focus()
                    Return "Trùng mã vật tư"
                End If
            Case vEditAction
                If txtMaVatTu.Text.Trim <> VatTuEdit.MaVatTu Then
                    Dim objTrungMa = (From ds In dbTV.VT_DM_VatTus Where ds.InUsed AndAlso ds.MaVatTu = txtMaVatTu.Text.Trim).FirstOrDefault
                    If objTrungMa IsNot Nothing Then
                        txtMaVatTu.Focus()
                        Return "Trùng mã vật tư"
                    End If
                End If
        End Select

        Return ""
    End Function

    Private Sub FrmCapNhatVatTu_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.Escape Then
            btnThoat_ItemClick(Nothing, Nothing)
        End If
        'Ghi và đóng
        If clsDSPhimTatDefault.isCheckPhimTat(e, ELoaiPhimTat.pSAVECLOSE, btnGhiVaDong) Then
            btnGhiVaDong_ItemClick(Nothing, Nothing)
        End If
    End Sub

    Private Sub btnGhiVaThem_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnGhiVaThem.ItemClick
        Dim strLoi As String = CheckSave()
        If strLoi <> "" Then
            MsgInfo(strLoi)
            Return
        End If

        If SaveData() Then
            txtMaVatTu.Text = ""
        End If
    End Sub

    Private Sub txtMaNhomVatTu_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMaNhomVatTu.Leave
        Dim objNhomVatTu = (From ds In dbTV.VT_DM_NhomVatTus Where ds.InUsed AndAlso ds.MaNhom = txtMaNhomVatTu.Text.Trim Select ds).FirstOrDefault
        If objNhomVatTu IsNot Nothing Then
            txtMaNhomVatTu.Text = objNhomVatTu.MaNhom
            txtTenNhomVatTu.Text = objNhomVatTu.TenNhom
            txtMaNhomVatTu.Tag = objNhomVatTu.ID
        Else
            Dim frm As New FrmDMNhomVatTu
            frm.LaChon = True
            frm.ChonNhomVatTu = True
            frm.MaNhomVatTu = txtMaNhomVatTu.Text.Trim
            frm.ShowDialog()
            If Not String.IsNullOrEmpty(frm.IDNhomVatTu) Then
                Dim obj = (From ds In dbTV.VT_DM_NhomVatTus Where ds.InUsed AndAlso ds.ID = frm.IDNhomVatTu Select ds).FirstOrDefault
                If obj IsNot Nothing Then
                    txtMaNhomVatTu.Text = obj.MaNhom
                    txtTenNhomVatTu.Text = obj.TenNhom
                    txtMaNhomVatTu.Tag = obj.ID
                End If
            Else
                txtMaNhomVatTu.Text = ""
                txtTenNhomVatTu.Text = ""
                txtMaNhomVatTu.Tag = Nothing
            End If
        End If
    End Sub

     
End Class